home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / G-Games / (c)gb.d64 / connect 4.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  2KB  |  99 lines

  1. 100 REM ****** CONNECT 4 ********
  2. 130 DIMB(8,7),E(2,9),Y(3),X(3)
  3. 200 GOSUB8000
  4. 220 IFNP=1ANDRND(0)>.5THENPRINT"      I'LL GO FIRST THIS TIME":GOTO300
  5. 250 C=2:GOSUB7000
  6. 300 C=1
  7. 310 IFNP=2THENGOSUB7000:GOTO250
  8. 350 GOSUB1000:GOTO250
  9. 499 REM * EVAL X & Y
  10. 500 E=EC(X)
  11. 510 FORD=0TO3
  12. 520 Q=X(D):R=Y(D)
  13. 530 FORC1=1TO2
  14. 540 N=0:I=X+Q:J=Y+R
  15. 550 IFB(I,J)<>C1THEN580
  16. 560 I=I+Q:J=J+R:N=N+1
  17. 570 IFB(I,J)=C1THEN560
  18. 580 O=(B(I,J)=0)
  19. 590 I=X-Q:J=Y-R
  20. 600 IFB(I,J)<>C1THEN630
  21. 610 I=I-Q:J=J-R:N=N+1
  22. 620 IFB(I,J)=C1THEN610
  23. 630 O=-(B(I,J)=0)-O
  24. 640 A=N*3+O:IFA>9THENA=9
  25. 645 C2=C1:IFC=2THENC2=3-C2
  26. 650 E=E+E(C2,A)
  27. 660 NEXT
  28. 670 NEXT
  29. 890 RETURN
  30. 996 /22
  31. 1000 REM ***** COMP MOVE ********
  32. 1020 B=-1:BE=-1E9
  33. 1050 FORX=1TO7
  34. 1060 GOSUB1900:IFY>6THEN1200
  35. 1100 GOSUB500
  36. 1110 PRINT""TAB(X*3+5)MID$(STR$(E),2)
  37. 1120 IFE>BETHENBE=E:B=X
  38. 1200 NEXTX
  39. 1400 X=B:IFX<0THENRETURN
  40. 1410 GOSUB7500
  41. 1420 IFE<500THENRETURN
  42. 1430 PRINT"[159]         I WIN.  HIT SPACE "
  43. 1440 GETA$:IFA$<>" "THEN1440
  44. 1450 RUN
  45. 1900 FORY=1TO6:IFB(X,Y)THENNEXT
  46. 1910 RETURN
  47. 7000 GOSUB7400
  48. 7020 PRINT"       "MID$("WHITEBLACK",C*5-4,5)" MOVE   (OR STOP) "
  49. 7030 GETA$:IFA$<>""THEN7030
  50. 7050 GETA$:IFA$="S"THENRUN
  51. 7100 X=VAL(A$)
  52. 7110 IFX=0ORX>7THEN7050
  53. 7120 GOSUB7500
  54. 7150 IFY>6THEN7050
  55. 7200 IFE<500THEN7400
  56. 7210 PRINT"          YOU WIN. HIT SPACE  "
  57. 7250 GETA$:IFA$<>" "THEN7250
  58. 7270 RUN
  59. 7400 FORA=1104TO1223:POKEA,32
  60. 7410 NEXT
  61. 7490 RETURN
  62. 7500 FORY=1TO6
  63. 7510 IFB(X,Y)THENNEXT:RETURN
  64. 7550 FORA=X*3+1189TOX*3+2009-Y*120STEP40
  65. 7555 POKEA-40,32:POKEA-39,32
  66. 7560 IFC=1THENPOKEA,233:POKEA+1,223:POKEA+40,95:POKEA+41,105
  67. 7570 IFC=2THENPOKEA,78:POKEA+1,77:POKEA+40,77:POKEA+41,78
  68. 7600 NEXTA
  69. 7610 GOSUB500
  70. 7650 B(X,Y)=C
  71. 7990 RETURN
  72. 8000 REM ******* NEW GAME **********
  73. 8010 PRINT"[147][158]         ***  CONNECT  4  ***           "
  74. 8020 PRINT"          1 OR 2 PLAYERS ? "
  75. 8025 POKE53281,0:POKE53280,10
  76. 8050 PRINT""
  77. 8100 FORX=1TO18:PRINT"       [221]  [221]  [221]  [221]  [221]  [221]  [221]  [221]":NEXT
  78. 8120 PRINT"        1  2  3  4  5  6  7  "
  79. 8130 GETA$:NP=VAL(A$)
  80. 8140 IFNP<1ORNP>2THEN8130
  81. 8200 FORX=1TO7:FORY=1TO6
  82. 8205 B(X,Y)=0:NEXT:NEXT
  83. 8210 FORX=0TO8:B(X,0)=-1
  84. 8215 B(X,7)=-1:NEXT
  85. 8220 FORY=0TO7:B(0,Y)=-1
  86. 8225 B(8,Y)=-1:NEXT
  87. 8400 RESTORE
  88. 8410 FORC=1TO2:FORX=0TO9
  89. 8415 READE(C,X):NEXT:NEXT
  90. 8420 FORX=0TO3:READX(X):NEXT
  91. 8430 FORX=0TO3:READY(X):NEXT
  92. 8450 FORX=1TO7:READEC(X):NEXT
  93. 8490 RETURN
  94. 9600 DATA0,2,3,0,4,6,1,12,16,1000
  95. 9620 DATA0,0,0,0,2,3,0,8,11,120
  96. 9700 DATA0,1,1,1
  97. 9710 DATA1,1,0,-1
  98. 9750 DATA0,0,1,3,1,0,0
  99.